docker启动容器执行多条命令 | 您所在的位置:网站首页 › docker 执行脚本启动服务 › docker启动容器执行多条命令 |
打好了一个nginx镜像front 此时想在docker 容器启动的时候同时运行docker 里面的某一个脚本 docker run -id --name front -p 80:80 -e target_host=https://xxx.xxxxx.com front /replace_host.sh一运行,发现容器立即退出,运行docker logs front 发现replace_host脚本运行了,就觉得很困惑 别慌 首先,我们先不带任何命令地启动镜像 docker run -id --name front -p 80:80 -e target_host=https://xxx.xxxxx.com front容器是能够正常启动而且不会立刻退出的,但是没有执行我们想执行的脚本而已 接下来,对两次启动镜像后执行 docker ps -a --no-trunc发现一个问题,两个脚本启动时的command是不一样的, 前者只有"/replace_host.sh" 而后者是 “/docker-entrypoint.sh nginx -g ‘daemon off;’” 所以我们可以大胆地猜测, 在我们指定了/replace_host.sh 就没有执行镜像默认的 “/docker-entrypoint.sh nginx -g ‘daemon off;’” 执行的命令改为 docker run -id --name front -p 80:80 front sh -c "/replace_host.sh &&/docker-entrypoint.sh nginx -g 'daemon off;'"其实就是将直接运行这个镜像的默认命令拼接上我们希望执行的命令 完美解决 |
CopyRight 2018-2019 实验室设备网 版权所有 |